#include <iostream>
#include <set>
//函数的构式是静态的
int c = 10; //侵入式编程

//函数 = 对象？
class Function
{
public:
    Function(int c):c(c){}
    int operator()(int a,int b) //仿函数:重载()
                                //具有更好的扩展性和封装性
    {
        return a + b;
    }
private:
    int c;
};

int add(int a,int b)
{
    return a + b ;
}

int minus(int a,int b)
{
    return a + b;
}


void print(int a, int b,Function & f)
{
    std::cout<<f(a,b)<<"\n";
}

int main()
{
    
    Function f(10);
    print(1,2,f);

    

    return 0;
}